home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / ldapjdk.jar / netscape / ldap / ber / stream / BEROctetString.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-04-13  |  2.1 KB  |  112 lines

  1. package netscape.ldap.ber.stream;
  2.  
  3. import java.io.IOException;
  4. import java.io.InputStream;
  5. import java.io.OutputStream;
  6.  
  7. public class BEROctetString extends BERElement {
  8.    private byte[] m_value;
  9.  
  10.    public BEROctetString(String var1) {
  11.       if (var1 != null) {
  12.          try {
  13.             this.m_value = var1.getBytes("UTF8");
  14.          } catch (Throwable var2) {
  15.          }
  16.       }
  17.    }
  18.  
  19.    public BEROctetString(byte[] var1) {
  20.       this.m_value = var1;
  21.    }
  22.  
  23.    public BEROctetString(byte[] var1, int var2, int var3) {
  24.       this.m_value = new byte[var3 - var2];
  25.  
  26.       for(int var4 = 0; var4 < var3 - var2; ++var4) {
  27.          this.m_value[var4] = var1[var2 + var4];
  28.       }
  29.  
  30.    }
  31.  
  32.    public BEROctetString(BERTagDecoder var1, InputStream var2, int[] var3) throws IOException {
  33.       int var4 = BERElement.readLengthOctets(var2, var3);
  34.       int[] var5 = new int[1];
  35.       Object var6 = null;
  36.       if (var4 != -1) {
  37.          var3[0] += var4;
  38.          this.m_value = new byte[var4];
  39.          var2.read(this.m_value, 0, var4);
  40.       } else {
  41.          do {
  42.             var5[0] = 0;
  43.             var10 = BERElement.getElement(var1, var2, var5);
  44.             if (var10 != null) {
  45.                BEROctetString var7 = (BEROctetString)var10;
  46.                byte[] var8 = var7.getValue();
  47.                if (this.m_value == null) {
  48.                   this.m_value = new byte[var8.length];
  49.                   System.arraycopy(var8, 0, this.m_value, 0, var8.length);
  50.                } else {
  51.                   byte[] var9 = new byte[this.m_value.length + var8.length];
  52.                   System.arraycopy(this.m_value, 0, var9, 0, this.m_value.length);
  53.                   System.arraycopy(var8, 0, var9, this.m_value.length, var8.length);
  54.                   this.m_value = var9;
  55.                }
  56.             }
  57.          } while(var10 != null);
  58.  
  59.       }
  60.    }
  61.  
  62.    public BEROctetString(InputStream var1, int[] var2) throws IOException {
  63.       int var3 = BERElement.readLengthOctets(var1, var2);
  64.       if (var3 > 0) {
  65.          this.m_value = new byte[var3];
  66.  
  67.          for(int var4 = 0; var4 < var3; ++var4) {
  68.             this.m_value[var4] = (byte)var1.read();
  69.          }
  70.  
  71.          var2[0] += var3;
  72.       }
  73.  
  74.    }
  75.  
  76.    public void write(OutputStream var1) throws IOException {
  77.       var1.write(4);
  78.       if (this.m_value == null) {
  79.          BERElement.sendDefiniteLength(var1, 0);
  80.       } else {
  81.          BERElement.sendDefiniteLength(var1, this.m_value.length);
  82.          var1.write(this.m_value, 0, this.m_value.length);
  83.       }
  84.    }
  85.  
  86.    public byte[] getValue() {
  87.       return this.m_value;
  88.    }
  89.  
  90.    public int getType() {
  91.       return 4;
  92.    }
  93.  
  94.    public String toString() {
  95.       if (this.m_value == null) {
  96.          return "OctetString (null)";
  97.       } else {
  98.          String var1 = "";
  99.  
  100.          for(int var2 = 0; var2 < this.m_value.length; ++var2) {
  101.             if (var2 != 0) {
  102.                var1 = var1 + " ";
  103.             }
  104.  
  105.             var1 = var1 + ((BERElement)this).byteToHexString(this.m_value[var2]);
  106.          }
  107.  
  108.          return "OctetString {" + var1 + "}";
  109.       }
  110.    }
  111. }
  112.